草庐IT

Java ByteBuffer 性能问题

全部标签

c# - 编译的 C# lambda 表达式性能与叠层

考虑这个类://////Dummyimplementationofaparserforthepurposeofthetest///classParser{publicListReadList(FuncreadFunctor){returnEnumerable.Range(0,10).Select(i=>readFunctor()).ToList();}publicintReadInt32(){return12;}publicstringReadString(){return"string";}}我尝试使用已编译的lambda表达式树生成以下调用:Parserparser=newPars

c# - 将 .NET 库移植到 PCL 时如何解决缺少 ICloneable 接口(interface)的问题?

我正在将现有的.NET类库移植到可移植类库。.NET库广泛使用ICloneable接口(interface),不包括在可移植子集中。通常,我在.NET类库中遇到这样的类定义:publicclassFoowhereT:ICloneable{publicvoidBar(Titem){varx=item.Clone();...}}如何才能将此代码成功移植到可移植类库?我是否必须重写Clone方法调用,还是有侵入性较小的解决方法?我不能简单地删除通用类型约束whereT:ICloneable因为那时Bar方法将无法编译。我可以写一个替换接口(interface)来代替ICloneable在移植

c# - XmlTextWriter序列化问题

我正在尝试创建一段xml。我用xsd.exe创建了数据类。根类是MESSAGE。因此,在创建了一个MESSAGE并填充了它的所有属性之后,我将它序列化如下:serializer=newXmlSerializer(typeof(Xsd.MESSAGE));StringWritersw=newStringWriter();serializer.Serialize(sw,response);stringxml=sw.ToString();到目前为止一切顺利,字符串xml包含有效(UTF-16编码)xml。现在我喜欢用UTF-8编码创建xml,所以我这样做:编辑:忘记包含流的声明seriali

c# - 在关注性能时,为 DateTime.Today 使用变量有多重要?

我刚看到thisupvotedcommentIIRCDateTime.Todayisaquiteexpensivecall,soyoubetterstorethevalueinavariablefirst.这是对包含代码的帖子的回应:varfirst=newDateTime(DateTime.Today.Year,DateTime.Today.Month,1).AddMonths(-1);varlast=newDateTime(DateTime.Today.Year,DateTime.Today.Month,1).AddDays(-1);如果我希望提高性能,将DateTime.Toda

c# - 诊断 .NET 遗留问题

假设您要接管旧版.NET应用程序。用C#编写您将采用哪些前5项诊断措施、分析或其他方式来评估应用程序的健康状况?我不仅在看诊断的“什么”部分,还要看“如何”。例如确实有必要评估应用程序的快速/最佳响应时间。...但是有没有办法通过代码库的技术诊断来建立/衡量它,而不仅仅是获得用户体验反馈?(来源:gmu.edu)是的,肯定会有一些真棒您为此目的使用的工具……如果您也列出它们,那就太好了。 最佳答案 1.用户感知我要做的第一件事就是简单地调查用户。请记住,他们是我们这样做的对象。不管一个应用程序的内部看起来多么可怕,如果用户喜欢它(或

c# - 反射能解决什么问题?

我浏览了reflection上的所有帖子但找不到我的问题的答案。在.NET反射之前,编程世界存在哪些问题它是如何解决这些问题的?请举例说明。 最佳答案 应该指出,.NET反射并不是革命性的——这些概念已经出现在其他框架中。.NET中的反射有两个方面:调查类型信息如果没有某种反射/内省(introspection)API,就很难执行序列化之类的操作。而不是在运行时提供它(通过检查属性/字段/等),您通常需要代码生成,即明确知道如何序列化每个类型的代码。如果您想连载没有双胞胎的东西,这既乏味又痛苦。同样,没有地方可以存储关于属性等的额外

C# - 使用 EnterWriteLock 锁定问题

以下代码来自MSDN:privateReaderWriterLockSlimcacheLock=newReaderWriterLockSlim();privateDictionaryinnerCache=newDictionary();publicvoidAdd(intkey,stringvalue){cacheLock.EnterWriteLock();try{innerCache.Add(key,value);}finally{cacheLock.ExitWriteLock();}}我在其他地方看到过这样的代码。EnterWriteLock()总是在tryblock之外。有谁知道为

c# - 使用具体类型而不是接口(interface)在性能方面是否更好

我遇到了一些规则(建议)来使用具体的List和Dictionary而不是IList和IDictionary,鉴于显示通过界面访问的示例测试要慢得多。例如,将10000个值添加到列表,然后对列表执行Count10亿次表明通过接口(interface)执行此操作比通过具体类执行慢28倍。也就是说,通过具体类需要80毫秒,通过接口(interface)需要2800毫秒,这表明通过接口(interface)的速度真的很慢。鉴于此,使用具体类是合理的。界面这么慢是有原因的吗?(可能更针对那些更了解.net内部结构的人)。 最佳答案 我认为如果

c# - MethodInfo.Invoke 性能问题

我正在从一个文件中读取和写入数据。文件中的数据可以是float、double、整数等。直到运行时才知道类型。我将文件中存储的数据类型称为Tin。数据从Tout类型的数组中读取或写入。这种类型在运行时也是未知的。代码序列是这样的。在已知Tin和Tout的Open方法中,我们可以为已知数据类型创建读写方法。Open(...){MethodInfoReadMethod=typeof(...)GetMethod("ReadGeneric").MakeGenericMethod(newType[]{typeof(Tin),typeof(Tout)}));}读写循环重复数百万次并依靠反射来调用适当

c# - Entity Framework 核心 .Include() 问题

一直在尝试使用efcore并遇到include语句的问题。对于这段代码,我得到了2家公司,这是我所期望的。publicIEnumerableGetAllCompanies(HsDbContextdb){varc=db.Company;returnc;}返回[{"id":1,"companyName":"new","admins":null,"employees":null,"courses":null},{"id":2,"companyName":"TestCompany","admins":null,"employees":null,"courses":null}]如您所见,有2家公